Opaque type
https://qiita.com/arowM/items/54fd76ee3965ddc86455
Opaque typeとは、型自体はそのモジュールをインポートしたプログラムから呼び出せるが、その型の内部実装が隠蔽されており、別途用意された関数(以下コンストラクタ関数と呼ぶ)によってのみ、その型をもつ値を生成できることを意味します。
#型
Advanced Types in Elm - Opaque Types